/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.loja.model.entity.compra;

import br.com.loja.model.entity.Switchable;
import java.math.BigDecimal;
import java.util.Calendar;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import br.com.loja.model.entity.estoque.ItemEstoque;
import br.com.loja.view.swing.Composition;
import br.com.loja.view.swing.model.FormField;
import br.com.loja.view.swing.model.IgnoreTableModel;
import java.io.Serializable;

/**
 *
 * @author David Luiz
 */
@Entity
@Table(name = "item_compra")
@Composition(Compra.class)
public class ItemCompra implements Switchable, Serializable {

    public static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long idItemCompra;
    private BigDecimal precoCompra;
    private BigDecimal precoNormal;
    private BigDecimal precoPromocao;
    private BigDecimal tributo;
    private BigDecimal custo;
    private BigDecimal lucro;
    private Integer quantidade;
    @Temporal(TemporalType.DATE)
    private Calendar validade;
    @ManyToOne
    private ItemEstoque itemEstoque;
    @ManyToOne
    private Compra compra;

    @FormField(visible = false)
    @IgnoreTableModel
    private boolean dead;

    public Long getIdItemCompra() {
        return this.idItemCompra;
    }

    public void setIdItemCompra(Long idItemCompra) {
        this.idItemCompra = idItemCompra;
    }

    public BigDecimal getPrecoCompra() {
        return this.precoCompra;
    }

    public void setPrecoCompra(BigDecimal precoCompra) {
        this.precoCompra = precoCompra;
    }

    public BigDecimal getPrecoNormal() {
        return this.precoNormal;
    }

    public void setPrecoNormal(BigDecimal precoNormal) {
        this.precoNormal = precoNormal;
    }

    public BigDecimal getPrecoPromocao() {
        return this.precoPromocao;
    }

    public void setPrecoPromocao(BigDecimal precoPromocao) {
        this.precoPromocao = precoPromocao;
    }

    public Integer getQuantidade() {
        return this.quantidade;
    }

    public void setQuantidade(Integer quantidade) {
        this.quantidade = quantidade;
    }

    public ItemEstoque getItemEstoque() {
        return this.itemEstoque;
    }

    public void setItemEstoque(ItemEstoque itemEstoque) {
        this.itemEstoque = itemEstoque;
    }

    public BigDecimal getTributo() {
        return this.tributo;
    }

    public void setTributo(BigDecimal tributo) {
        this.tributo = tributo;
    }

    public BigDecimal getCusto() {
        return this.custo;
    }

    public void setCusto(BigDecimal custo) {
        this.custo = custo;
    }

    public BigDecimal getLucro() {
        return this.lucro;
    }

    public void setLucro(BigDecimal lucro) {
        this.lucro = lucro;
    }

    public Calendar getValidade() {
        return this.validade;
    }

    public void setValidade(Calendar validade) {
        this.validade = validade;
    }

    /**
     * @return the compra
     */
    public Compra getCompra() {
        return compra;
    }

    /**
     * @param compra the compra to set
     */
    public void setCompra(Compra compra) {
        this.compra = compra;
    }

    /**
     * @return the dead
     */
    public boolean isDead() {
        return dead;
    }

    /**
     * @param dead the dead to set
     */
    public void setDead(boolean dead) {
        this.dead = dead;
    }

}
